package tugou

const (
	Module_Type_Gate    = "Gate"
	Module_Type_Dynamic = "Dynamic"
	Moduel_Type_Fix     = "Fix"
)

type moduleInfo struct { //session 的信息
	Id       string
	Name     string
	Type     string
	ServerID string //服务器ID
	Version  string //版本号
}

//获取模块ID
func (this *moduleInfo) GetId() string {
	return this.Id
}

//获取模块名称
func (this *moduleInfo) GetName() string {
	return this.Name
}

//获取类型
func (this *moduleInfo) GetType() string {
	return this.Type
}

//获取模块版本号
func (this *moduleInfo) GetVersion() string {
	return this.Version
}

//模块信息接口
type ModuleInfo interface {
	GetId() string
	GetName() string

	GetType() string
	GetVersion() string
}
type sessionMy struct { //本模块的引用
	gate    gate    //网关模块
	dynamic dynamic //同步模块
	fix     fix     //固定模块
}

func (this *sessionMy) getSessionInfo() (SessionInfo, error) {
	if this.gate != nil {
		return this.gate.getSessionInfo(), nil
	} else if this.dynamic != nil {
		return this.dynamic.getSessionInfo(), nil
	} else if this.fix != nil {
		return this.dynamic.getSessionInfo(), nil
	}
	return errors.New("no fond")
}
